倾向得分匹配(Propensity Score Matching,简记 PSM)常用于估计微观数据的处理效应(treatment effects),特别适用于样本容量较大,而且协变量(控制变量)较多的情形。在 Stata 命令中,psmatch2 是较早出现的PSM非官方命令。然而,虽然 psmatch2 提供了丰富的具体匹配方法,但它最大的缺陷则在于其标准误(standard errors)并不正确。基于标准误对于统计推断的重要性,这是 psmatch2 的致命弱点。事实上,psmatch2 在汇报 PSM 估计结果时,已经委婉暗示了此局限性。比如,在下图 psmatch2 估计结果底部的 Note 中,已经声明“所提供的标准误并未考虑到倾向得分是估计的”(S.E. does not take into account that the propensity score is estimated)。这意味着,在计算此标准误中,有个不现实的假定,即假设所估计的倾向得分就是真正的倾向得分;这自然会导致偏差。那么,能否用自助法(bootstrap)来得到正确的标准误呢?很遗憾,也不行,Abadie and Imbens (2008, Econometrica) 已经证明了这一点。这是因为,bootstrap standard errors 的成立有一个前提条件,即统计量必须是样本数据的连续函数;而对于倾向得分匹配,这一前提并不成立。不难想象这样一种的情形,即虽然协变量只有微小的变动,却导致匹配到另一位个体,使得匹配结果发生不连续的剧烈变动。PSM的正确标准误直到2012年才由 Abadie and Imbens (2012, working paper) 给出,并最终于2016年发表于Econometrica。Abadie与 Imbens 所提出的 PSM 标准误,充分考虑到了第一阶段估计倾向得分的误差,故为一致估计。说起这两位作者,均是当今的计量大牛。其中,MIT 经济系教授 Alberto Abadie正是如今炙手可热的“合成控制法”(Synthetic Control Method)之创始人。而 Stanford 经济系教授 Guido Imbens 在因果推断方面建树颇丰;比如,在使用局部线性回归(local linear regression)进行断点回归时,常用于确定带宽的IK法,即来自于Imbens and Kalyanaraman (2010)。当然,Imbens 还有一位或许名气更大的妻子 Susan Athey(曾为微软首席经济学家),在此按下不表。自 Stata 13 以来,推出了关于处理效应的官方命令 teffects,其中的一个主要子命令即为 teffects psmatch。此官方命令虽然提供的匹配方法不如 psmatch2 丰富,但最大的优点是给出了由 Abadie 与 Imbens 所提出的正确标准误,称为“AI稳健标准误”(AI Robust Standard Errors)。猛一看,还以为是“人工智能稳健标准误”……命令 teffects psmatch 的基本格式很简单:teffects psmatch (y) (t x1 x2 x3), atet nn(#) caliper(#)
左右滑动查看更多
其中,y 为结果变量(outcome variable),t 为处理变量(treatment variable),而 x1,x2 与 x3为协变量(covariates)。默认使用 Logit 估计倾向得分。
选择项“atet”表示估计“参与者平均处理效应”(Average Treatment Effect on the Treated),默认估计所有个体的“平均处理效应”(Average Treatment Effect)。选择项“nn(#)”表示进行“一对#”的最近邻匹配(nearest neighbor matching),默认为“nn(1)”,即一对一匹配。选择项“caliper(#)”表示在某个卡尺范围内进行匹配;比如“caliper(0.1)”,表示仅考虑在倾向得分的差异不超过0.1的个体之间进行匹配。下面以 Stata 自带的数据集 cattaneo2.dta 为例。该数据集可用于研究“怀孕期母亲是否抽烟”(mbsmoke)对于“新生儿体重”(bweight)的影响。此例子中的协变量为“母亲是否结婚”(mmarried),母亲年龄(mage)及其平方,“是否第一胎”(fbaby),以及“母亲的教育年限”(medu)。左右滑动查看更多
先看一下相关变量的统计特征:
sum bweight mbsmoke mmarried c.mage##c.mage fbaby medu
左右滑动查看更多
其中,上述命令中的“c.mage##c.mage”包括了“mage”及其平方“c.mage#c.mage”。
进一步,考察吸烟组(处理组)与不吸烟组(控制组)的新生儿体重差异特征。bysort mbsmoke: sum bweight
左右滑动查看更多
从上表可知,不吸烟组(nonsmoker)的新生儿平均体重为3412.912克,而吸烟组(smoker)的新生儿平均体重仅为3137.66千克。这两组新生儿体重的平均差异是否显著呢?为此,下面进行一对一的倾向得分匹配。teffects psmatch (bweight) (mbsmoke mmarried c.mage##c.mage fbaby medu)
左右滑动查看更多
上表所提供的标准误即为“AI Robust Std. Err.”。由上表可知,吸烟组与非吸烟组的新生儿平均体重的差异在1%水平上显著(p 值为0.000)。teffects psmatch 默认进行一对一的倾向得分匹配。一对一匹配的优点是偏差(bias)较小,但方差(variance)可能较大。为此,加上选择项“nn(4)”,进行一对四的倾向得分匹配。更多关于命令 teffects psmatch 的介绍,参见help teffects psmatch,以及相应的Stata手册(Stata manual)。_____________________________________
陈强,《高级计量经济学及Stata应用》,第2版,高等教育出版社,2014年。陈强,《计量经济学及Stata应用》,高等教育出版社,2015年。
►一周热文
数据呈现丨R画树状图:一种轻量级方法
因果推断丨中国学者用双重差分做了哪些工作?
数据呈现丨R语言相关关系可视化函数梳理
数据呈现丨R语言可视化学习笔记之gganimate包
统计计量丨工具变量法(四):GMM
软件应用丨经济学专业学习Python之数据存储篇
软件应用丨38个常用Python库:数值计算、可视化、机器学习等8大领域都有了
这里是大数据、分析技术与学术研究的三叉路口
作者:陈强出处:计量经济学及Stata应用推荐:简华(何年华)编辑:青酱